1. Field of the Invention
The present invention generally relates to a communication/broadcasting system.
2. Description of the Related Art
The link performance in a communication/broadcasting system is susceptible to deterioration due to any of channel noise, fading, and Inter-Symbol Interference (ISI). Accordingly, in order to realize high-speed digital communication/broadcasting systems requiring high-speed data throughput and reliability such as next-generation mobile communication, digital broadcasting, and portable Internet, technology is needed for overcoming such noise, fading, and ISI. To this end, research has been conducted on an error-correcting code as a method for efficiently restoring distortion of information and enhancing the reliability of communication/broadcasting.
A Low Density Parity Check (LDPC) code first introduced by Gallager in the 1960s was dismissed for many years due to complexity in realizing in those years. However, as a turbo code disclosed by Berrou, Glavieux, and Thitimajshima in 1993 showed performance close to the Shannon channel capacity, much interpretation was rendered on the performance and characteristic of the turbo code while intensive research was conducted on iterative decoding and graph-based channel coding. With this, the LDPC code was re-studied in the latter half of the 1990s, and was known to exhibit performance close to the Shannon channel capacity iterative decoding were applied based on the sum-product algorithm to perform decoding on a Tanner graph corresponding to the LDPC code.
The LDPC code is generally defined as a parity-check matrix and is expressed using a bipartite graph known as a Tanner graph. The LDPC encoder generates a LDPC codeword composed of Nldpc bits by receiving an input of an LDPC information word composed of the Kidpc bits. For convenience of description, assume that a codeword is composed of Nldpc bits by receiving an input of an LDPC information word composed of the Kldpc bits. That is, by performing LDPC coding for an LDPC information word (I=[i0, i1, i2, . . . , iKldpc−1]) composed of input Kldpc bits, a LDPC codeword (c=[c0, c1, c2, c3, . . . , cNldpc−1]) is generated. That is, the LDPC codeword is a bit stream composed of a plurality of bits, and a LDPC codeword bit represents each of the bits constituting the codeword. Also, the LDPC information word is a bit stream composed of a plurality of bits, and an LDPC information word bit represents each of the bits constituting the information word. At this time, in a systematic code, a codeword is composed of c=[c0, c1, c2, c3, . . . , cNldpc−1] [i0, i1, . . . , =iKldpc−1, p0, p1, . . . , pNparity−1]. Here ‘P=[p0, p1, . . . , pNparity−1]’ denotes parity bits, and the number of the parity bits is given as Nparity=Nldpc−Kldpc.
The LDPC coding includes a process of determining a codeword meeting a condition of Equation (1) as follows.H·cT=0 where c=[c0,c1,c2, . . . ,cNldpc−1]  (1)
In Equation (1), ‘H’ denotes a parity-check matrix, ‘c’ denotes a codeword, ‘ci’ denotes an ith bit of the codeword, and ‘Nldpc’ denotes a codeword length.
The parity-check matrix (H) is composed of Nldpc columns, and represents that an ith column has a link with an ith codeword bit (ci).
According to the LDPC code, coding is generally performed when it has been already determined that an information word length and a codeword length are equal to ‘Kldpc’ and ‘Nldpc’, respectively. Therefore, a need exists for a suitable method when an information word of a shorter length than ‘Kldpc’ is input or is intended to generate a codeword of a shorter length than ‘Nldpc’. For example, a transmitter shortens (Kldpc−Ki) bits when the information word having a length of Kl input to a coder. Kl is less than the length (Kldpc) of information word required for coding. Also, the transmitter punctures (Nparity−Ntxparity) bits when a required parity length (Ntxparity) is less than the parity length (Nparity). The ‘Ntxparity’ denotes a length of an actually transmitted parity, and is determined according to Kl that is input and a coding rate that is necessary for transmission.
When some bits are shortened or punctured in consideration of information word length and parity length, the performance of a codeword is greatly varied according to which bits are shortened or punctured. Accordingly, there is a need for selecting the shortened bits and the punctured bits to maintain optimal performance.